class Solution {
public:
    typedef struct ListNode Node;
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
        if (pListHead == NULL || k == 0)
        {
            return NULL;
        }
        Node* fast = pListHead;
        Node* slow = pListHead;
        while (k--)
        {
            if (fast == NULL) return NULL;
            fast = fast->next;
        }
        while (fast)
        {
            slow = slow->next;
            fast = fast->next;
        }
        return slow;
    }
};